Image processing apparatus, image processing method, program thereof, and recording medium

ABSTRACT

Provided herein is an image processing apparatus comprising: input means for inputting image data, which is obtained by digitalizing an image signal that has been converted from light from an object to an electric signal by an image sensor, and performing no compression or lossless compression; image processing parameter input means for inputting a parameter to be employed in image processing on the image data executed by a user; image processing means for performing luminance-related processing or chrominance-related processing on the image data in accordance with the image processing parameter inputted by the image processing parameter input means; and storage means for storing an intermediate result for each of the luminance-related processing and the chrominance-related processing. By virtue of storing the intermediate results, this invention contributes to not only high-speed RAW image data development processing, but also a reduced image processing load and increased processing speed.

FIELD OF THE INVENTION

The present invention pertains to image processing (image editing)performed on digital image data, in particular, image data generated byan image input device such as a digital camera, and more particularly,to a technique of reducing a load of such image processing.

BACKGROUND OF THE INVENTION

Currently it is common to view or edit images, which are sensed by adigital camera, by employing an application software installed in apersonal computer (PC).

Some digital cameras have a function for storing a sensed image as RAWdata (data that has been subjected to photoelectric conversion by animage sensor such as a CCD or a CMOS, then subjected to A/D conversionand lossless compression at the time of image sensing by a digitalcamera, thus keeping sensed information intact). Hereinafter, an imagestored as RAW data will be referred to as a RAW image.

Further, some image processing software are capable of image processing(hereinafter referred to as RAW image development processing) based onimage processing parameters (hereinafter referred to as developmentparameters), e.g., attribute information recorded in association withthe RAW image, characteristics of the digital camera main unit, as wellas resolution, sharpness, hue, and white balance set by a user.

Employing such image processing software enables a user to obtain animage of which quality meets the user's preference with its parametersadjusted. Note that since image data that has been developed isgenerally stored in a versatile data type (JPEG, BMP, TIFF or the like),processing including storage may be referred to as developmentprocessing.

For instance, according to the disclosure of Japanese Patent ApplicationLaid-Open (KOKAI) No. 2004-080099, development processing is performedon RAW image data by applying development parameters, e.g., whitebalance adjustment, color-effect mode selection, contrast adjustment,color-density adjustment, sharpness adjustment and so on set by a user,and the developed result is displayed on a display device and stored ina versatile file such as JPEG.

However, in RAW image development processing, the outcome of imagedevelopment using the inputted development parameters is unknown untilthe user sees the actual result of development. Therefore, it isdifficult to achieve a satisfactory processing result with one time ofparameter input. Normally, a user repeats trial and error, whileconfirming the developed result on the display device, to determinesatisfactory parameter values.

Since each processing that constitutes development processing applyingthe user-input development parameters is performed on all pixels of RAWimage data (in principle, it is the number of effective pixels of theimage sensor), the processing load for the development is heavy or high.If development is performed each time the parameter value is changed inthe process of trial and error to decide the development parametervalues, an extremely long processing time is required.

Furthermore, along with the trend toward higher resolution of a digitalcamera in late years, the processing load tends to become heavy. Inaddition, due to the user's rising interest for higher image quality,image processing on RAW image data is growing popular.

SUMMARY OF THE INVENTION

The object of the present invention is to solve the above-describedproblems of the conventional art, and to serve user's needs for imageprocessing that has become complicated because of a high-quality trendin image processing of a sensed image, as well as to reduce acalculation load in the image processing.

According to the present invention, the foregoing object is attained byproviding an image processing apparatus comprising:

input means for inputting image data, which is obtained by digitalizingan image signal that has been converted from light from an object to anelectric signal by an image sensor, and performing no compression orlossless compression;

image processing parameter input means for inputting a parameter to beemployed in image processing on the image data executed by a user;

image processing means for performing luminance-related processing orchrominance-related processing on the image data in accordance with theimage processing parameter inputted by the image processing parameterinput means; and

storage means for storing an intermediate result for each of theluminance-related processing and the chrominance-related processing.

According to another aspect of the present invention, the foregoingobject is attained by providing an image processing apparatuscomprising:

input means for inputting image data that is obtained by convertinglight from an object to an electric signal employing an image sensor,digitalizing an image signal, and performing no compression or losslesscompression;

image processing parameter input means for inputting a parameter to beemployed in image processing on the image data executed by a user;

image processing means for performing image processing on the image datain accordance with the image processing parameter inputted by theparameter input means;

storage means for storing a result of image processing and anintermediate result of image processing;

cache control means for caching the intermediate result of imageprocessing in the storage means in preparation for next imageprocessing;

image processing parameter input history storage means for storing inputhistory information of a parameter inputted by the image processingparameter input means; and

cache control means for controlling whether or not to cache theintermediate result of image processing in the storage means inaccordance with a comparison between a current image processingparameter and previous input history information stored in the imageprocessing parameter input history storage means.

In still another aspect of the present invention, the foregoing objectis attained by providing an image processing method comprising:

an input step of inputting image data, which is obtained by digitalizingan image signal that has been converted from light from an object to anelectric signal by an image sensor, and performing no compression orlossless compression;

an image processing parameter input step of inputting a parameter to beemployed in image processing on the image data executed by a user;

an image processing step of performing luminance-related processing orchrominance-related processing on the image data in accordance with theimage processing parameter inputted in the image processing parameterinput step; and

a storage step of storing an intermediate result for each of theluminance-related processing and the chrominance-related processing.

In still another aspect of the present invention, the foregoing objectis attained by providing an image processing method comprising:

an input step of inputting image data, which is obtained by digitalizingan image signal that has been converted from light from an object to anelectric signal by an image sensor, and performing no compression orlossless compression;

an image processing parameter input step of inputting a parameter to beemployed in image processing on the image data executed by a user;

an image processing step of performing image processing on the imagedata in accordance with the image processing parameter inputted in theparameter input step;

a storage step of storing a result of image processing and anintermediate result of image processing;

a cache control step of caching the intermediate result of imageprocessing in a storage unit in preparation for next image processing;

an image processing parameter input history storage step of storinginput history information of a parameter inputted in the imageprocessing parameter input step; and

a cache control step of determining whether or not to cache theintermediate result of image processing in accordance with a comparisonbetween a current image processing parameter and previous input historyinformation stored in the image processing parameter input historystorage step.

According to the present invention, it is possible to reduce timerequired for development processing and to display the processing resultat high speed, thereby improving usability in development of a RAW imagein accordance with user's preference.

Furthermore, in RAW image data development processing, it is possible toincrease the developing speed, and further to reduce the necessarymemory capacity by efficiently using the memory.

Other objects and advantages besides those discussed above shall beapparent to those skilled in the art from the description of a preferredembodiment of the invention which follows. In the description, referenceis made to accompanying drawings, which form a part thereof, and whichillustrate an example of the various embodiments of the invention. Suchexample, however, is not exhaustive of the various embodiments of theinvention, and therefore reference is made to the claims which followthe description for determining the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is an explanatory diagram showing RAW image data developmentprocessing in an image processing apparatus according to an embodimentof the present invention;

FIG. 2 is a diagram showing an example of a basic construction of theimage processing apparatus according to the embodiment of the presentinvention;

FIG. 3 is a flowchart describing a developing procedure according to asecond embodiment of the present invention;

FIG. 4 is a diagram showing an example of a basic construction of animage processing apparatus according to the present invention in a casewhere the apparatus is realized by a personal computer;

FIG. 5 is a view showing an example of a user interface provided by theimage processing apparatus according to the present invention;

FIG. 6 is a flowchart describing an operating procedure of a RAW imageediting program shown in FIG. 4;

FIG. 7 is a flowchart describing in detail a developing procedure shownin FIG. 6;

FIG. 8 is a flowchart describing in detail an invalid cache discardingprocedure shown in FIG. 7;

FIG. 9 is a flowchart describing in detail a caching target determiningprocedure shown in FIG. 7;

FIG. 10 is a flowchart describing in detail a developing procedureutilizing a cache, shown in FIG. 7; and

FIG. 11 is an explanatory view showing an example of developmentparameter input history data and handling of cache data in theembodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will now be described indetail in accordance with the accompanying drawings.

First Embodiment

FIG. 1 is a data flow/operation block diagram for describing an exampleof a RAW image data developing procedure in an image processingapparatus according to the first embodiment of the present invention.The image processing apparatus, which performs image processing(developing procedure) on RAW image data, is realized by a computerapparatus represented by, e.g., a personal computer or a CPU of adigital camera, executing a control program for performing theprocessing that will be described below.

Numeral 101 denotes RAW image original data. Although there is RAW imagedata 101 that has been subjected to lossless compression, the presentembodiment assumes that the RAW data has been subjected to nocompression. Further, assume that this embodiment employs RAW image datathat has been sensed with the use of a color filter adopting a Bayerpattern having R, G1, G2, and B.

Numeral 102 denotes interpolation processing for performinginterpolation with respect to lost pixels of each component based on theRAW image data having the Bayer pattern, and generating R, G and B planedata having (substantially) the same horizontal and vertical sizes asthat of the RAW image. Note, in the present embodiment, assume that anaverage value of G1 and G2 planes is outputted as a G plane.

Numeral 103 denotes white balance (WB) adjustment processing. R, G, andB data are respectively multiplied by a WB coefficient value calculatedfrom processing (not shown) based on a condition set at the time ofimage sensing or a WB coefficient value that has been calculated basedon a user-inputted white balance adjustment value 104 to adjust whitebalance of the image in a way that the R, G, and B values in the whiteportions of the object have equal values (=white).

Numeral 104 denotes a white balance adjustment value serving as one ofthe image processing parameters (development parameters) inputted by auser through a user interface (not shown). In general, the value isselected from a color temperature of the light source such as daylight,cloudy, Tungsten light, fluorescent light, and so on.

Numeral 105 denotes color conversion processing for convertingWB-adjusted RGB data to YCrCb data. In this operating procedure, RGBdata is converted to Y (luminance data) and CrCb color (color differencedata) components for color separation, and then respective processing isperformed. Each of the color-separated components is later convertedback to RGB data.

Note that although the description is provided on YCrCb in the presentembodiment, other data forms, e.g., L*a*B* or YUV may be used as long asthe data form allows separation into luminance and color data.

Numeral 106 denotes luminance-related cache data YCache. Among theoutput result of the RGB-to-YCrCb conversion processing 105, the Ycomponent is cached in a memory (not shown).

Numeral 107 denotes chrominance-related cache data CrCbCache. Among theoutput result of the RGB-to-YCrCb conversion processing 105, the CrCbcomponent is cached in a memory (not shown).

Numeral 108 denotes chrominance-related processing, where colorprocessing is performed on the CrCb component to achieve excellent imagequality, and color density adjustment is performed in accordance with acolor density adjustment value 109 serving as an image processingparameter arbitrarily inputted by a user. The processing result isoutputted as Cr2 and Cb2.

The color density adjustment value 109 is a parameter for performingimage processing on RAW image data, inputted by a user through a userinterface serving as image processing parameter input means. For theparameter, for instance, ten levels including 1 to 10 are set, 1 beingthe lowest saturation and 10 being the highest saturation.

Numeral 110 denotes chrominance-related cache data CrCb2Cache. Theoutputted components Cr2 and Cb2 of the chrominance-related processing108 are cached in a memory.

Numeral 111 denotes luminance-related processing where gamma correction,noise removal, and aperture control (APC) are performed to make theimage suitable for screen display. The processing result is outputted asY2.

Herein, the APC is specifically described. APC is performed withreference to a sharpness adjustment value serving as a luminance-relatedadjustment value 112 inputted by a user. In general, humans perceivehigh image quality when the object's edge is sharp. Therefore, in normalRAW development processing, a luminance signal is added in the APC torealize edge enhancement. It should be noted that the more the edge isenhanced, the more the noise in the image becomes conspicuous.Therefore, it is necessary to perform appropriate level of edgeenhancement. The sharpness adjustment value 112 is one of thedevelopment (image processing) parameters inputted by a user forperforming image processing on RAW image data. For the levels ofadjustment value, for instance, 1 to 10 levels are set, 10 being thehighest enhancement on the edge. An appropriate sharpness adjustmentvalue is determined by trial and error while the user views and confirmsthe developed result.

Numeral 113 denotes luminance-related cache data Y2Cache. The Y2component outputted from the luminance-related processing 111 is cachedin a memory.

Numeral 114 denotes YCrCb-to-RGB conversion processing, where image dataof YCrCb components are converted to image data of RGB components.

Numeral 115 denotes RGB (synthesized data of chrominance-related dataand luminance-related data) cache data RGBCache. The R, G, and B dataoutputted from the YCrCb-to-RGB color conversion processing 115 arecached in a memory.

Numeral 116 denotes tone curve adjustment processing, where tone curveadjustment is performed on respective components of R, G, and Bemploying a user-inputted tone curve adjustment value 117 as aparameter.

Numeral 118 denotes data conversion processing, where the image datahaving R, G, and B components obtained from the tone curve adjustmentprocessing 116 is converted to data (display data) suitable fordisplaying the developed result in the developing-procedure operatingenvironment.

Numeral 119 denotes displaying of the display data in display means,such as a display monitor.

FIG. 2 is a diagram showing an example of a basic construction of theimage processing apparatus according to the present embodiment, whichexecutes the developing procedure described in FIG. 1.

With respect to numerals 206 and 207, description thereof is omittedsince they are not employed in the present embodiment.

Numeral 201 denotes a display monitor serving as display means fordisplaying an image obtained as a result of developing a RAW image, orfor displaying a user interface that allows a user to perform RAW imagedevelopment.

Numeral 202 denotes a memory serving as image file storage means forstoring RAW image data as a file, or storing a RAW development result asgeneral-purpose data as necessary.

Numeral 203 denotes an image processing unit serving as image processingmeans for executing the RAW developing procedure described in FIG. 1.More specifically, the image processing unit is a computer such as aCPU. By having the computer execute a control program, the imageprocessing unit functions as plural blocks (image processing blocks 1 toN) that execute plural image processing constituting the aforementionedimage processing procedure.

Numeral 204 denotes storage means which serves as a working memory ofrespective control means (not shown) of the image processing apparatus,or serves as a high-speed memory (cache memory) such as DRAM for storingcache data at the time of executing the RAW image development shown inFIG. 1.

Numeral 205 denotes a user interface serving as image processingparameter input means for allowing a user to input a RAW developmentparameter. According to the present embodiment, when a result of RAWimage development processing shown in FIG. 1 is displayed on themonitor, a user can change the RAW development parameters by inputting“color density,” “sharpness,” “tone curve” or the like in the userinterface 205, then development processing is performed again, and thedeveloped result reflecting the adjustment of respective parameters isdisplayed. In this stage, as will be described later, in a case whereresults of processing for respective parameters have been cached in thememory 204, part or all of the developing procedure shown in FIG. 1 canbe omitted.

For instance, assume that a user changes the adjustment value of “colordensity” from “1” to “3”. In the procedure shown in FIG. 1, the cachedata that becomes invalid as a result of this change is only thechrominance-related cache data CrCb2Cache 110 and RGBCache 115 in thesubsequent stage. Therefore, the processing up to RGB-to-YCrCbconversion processing 105 need not be performed again, and the CrCbCache107 and new color density adjustment value 109 are employed to performchrominance-related processing 108. Further, with respect toluminance-related processing, Y2Cache 113 may be used. As a result,since the number of steps to be executed is reduced as shown belowcompared to that of the initial development processing shown in FIG. 1,it is possible to obtain a development processing result at higherspeed.

That is, in a case where the color density adjustment value 109 ischanged, the following processing is performed:

chrominance-related processing 108 using as an input, the CrCbCache 107and the changed color density adjustment value 109;

YCrCb-to-RGB conversion processing 114 using as an input, the Cr2 andCb2 outputted from the chrominance-related processing 108, as well asY2Cache 113;

tone curve adjustment 116; and

data conversion 118.

Furthermore, when a user inputs parameters while confirming thedevelopment result, if the user wishes to return to the result ofpreviously set parameters, the user can see the result of previous stateat high speed by similarly using the cache data.

As described above, according to the first embodiment, by virtue ofcaching, step by step, the intermediate processing results obtainedduring the developing procedure, it is possible to display at high speedthe result of development that reflects the changes in various RAWdevelopment parameters.

Moreover, the RAW development parameters that can be changed by a usercan be categorized into parameters regarding chrominance-relatedprocessing and parameters regarding luminance-related processing. Forinstance, while “color density” is a parameter regardingchrominance-related processing, “sharpness” is a parameter regardingluminance-related processing. By virtue of caching the intermediateresults of respective steps of the chrominance-related processing andthe luminance-related processing, in a case where a RAW developmentparameter is changed, depending on whether the parameter is regardingthe luminance-related processing or the chrominance-related processing,it is possible to use the most appropriate cache data that minimizes theprocessing steps or processing time. Therefore, higher speed of thedevelopment processing can be realized.

Second Embodiment

In the above-described development processing utilizing a cache systemas described in the first embodiment with reference to FIG. 1, theintermediate results obtained during the image processing procedure arestored in a high-speed memory such as DRAM in many occasions inaccordance with the nature of the RAW development parameters such aschrominance-related processing or luminance-related processing. Byvirtue of this, it is possible to perform development processing at highspeed in a case where various changes are made in adjustment values (RAWdevelopment parameters). On the other hand, it requires a memory forstoring a large amount of intermediate results. Assuming a case whereimage data has a size of 4000 horizontal pixels×3000 vertical pixels, ifdata having 16 bits/pixel (2 bytes/pixel) is cached in the developmentprocessing shown in FIG. 1, the cache memory would require a largecapacity, i.e., 240 MB as in the following:

data for 1 plane=4000×3000×2(byte)=24 MB YCache . . . 1 plane forluminance data Y=24 MB×1=24 MB

CrCbCache . . . 2 planes for chrominance data CrCb=24 MB×2=48 MB

Y2Cache . . . 1 plane for luminance data Y=48 MB×1=48 MB

CrCb2Cache . . . 2 planes for chrominance data CrCb=24 MB×2=48 MB

RGBCache . . . 3 planes for RGB=24 MB×3=72 MB

Total cache data=72 MB+24 MB+48 MB+48 MB+48 MB=240 MB

In view of the above, described in the second embodiment is imageprocessing performed during RAW development processing, which achieves ahigh cache hit rate and high-speed development processing when one RAWdata is subjected to development processing plural numbers of times withdifferent development parameters, and which requires a small amount ofcache memory and does not impose a large load on a system.

In the image processing apparatus according to the present embodimenthaving the construction shown in FIG. 2, the cache memory controller 207serving as cache control means determines cache data to be stored asintermediate data in the image processing by referring to the RAWdevelopment parameter input history memory 206 serving as RAWdevelopment parameter input history means. Accordingly, it is possibleto store a minimum amount of cache data necessary, and realize a cachesystem having a high hit rate without using a large amount of cachememory.

Since the basic construction of FIG. 2 is identical to that of the firstembodiment, only the different points are described.

The image processing parameter input history memory 206 stores RAWdevelopment parameters, which have been used at least in the previousRAW development processing, in a form such as that shown in FIG. 11, forallowing a comparison between the current RAW development parameters andthe stored parameters. (The input history of RAW development parametersmay include not only the previous parameters, but also parameters in thepast several times. This achieves a higher cache hit rate.)

The cache memory controller 207 controls whether to store the respectivecache data shown in FIG. 1 in the cache memory 204 or to discard thecache data.

Numeral 208 denotes an internal bus for data transmission and receptionamong respective units of the image processing apparatus.

A developing procedure according to the second embodiment is describedfurther in detail with reference to FIG. 3.

When a RAW image is to be displayed initially on the display monitor 201with development parameters of a default condition or a condition set atthe time of image sensing, or when a user changes the RAW developmentparameters using the RAW development parameter input means 205 and theimage on the display monitor is to be updated, the image processingapparatus according to the present embodiment performs the developingprocedure shown in the flowchart in FIG. 3.

In step 301, all the current RAW development parameters are stored inthe RAW development parameter input history memory 206.

In step 302, the cache memory controller 207 discards cache data to beinvalidated among the cache data stored in the cache memory 204. Theprocedure of discarding the cache data to be invalidated will bedescribed later in detail with reference to FIG. 8 (invalid cachediscarding processing.). The cache data to be invalidated is all thecache data stored in the subsequent stages of the processing whichshould be executed again with an altered adjustment value in response toalteration of the RAW development parameters. Therefore, the cachememory controller 207 determines whether or not the adjustment value hasbeen changed by referring to the RAW development parameter input historymemory 206, and discards all the cache data stored in the subsequentstages of the processing executed with the altered adjustment value.

In step 303, the cache memory controller 207 determines data to becached among the data outputted as an intermediate result of the currentdevelopment processing. The determination method will be described laterwith reference to FIG. 9 (caching target determination processing).

When a user inputs a RAW development parameter while confirming the RAWdevelopment result in the monitor 201, it is often the case that theuser changes the adjustment value of the same adjustment item. Forinstance, in a case where the “color density” having adjustment valuesof 1 to 10 is adjusted as an adjustment item of the RAW developmentparameters, assume that a slider that allows setting of values 1 to 10is used as a user interface. In this case, it is often the case that auser continually moves the slider while confirming the displayed imageof the RAW development result and decides the most preferable adjustmentvalue by trial and error. Particularly in this case, the important pointfor improving usability is to hit the most appropriate cache data and todisplay the RAW development result on a display device at high speed.

In view of the foregoing characteristic of RAW image development, thecache memory controller 207 according to the present invention refers tothe RAW development parameter input history memory 206 to determinewhich RAW development parameter has been changed by comparison betweenthe previous and current development processing. Then, the cache memorycontroller 207 decides data to be cached, predicting that the changedadjustment item is again changed in the next development processing.

For instance, in a case where the adjustment item “color density” ischanged in the development processing in FIG. 1, it is predicted thatthe “color density” adjustment is highly likely repeated in the nextdevelopment processing. For this reason, even in a case where the “colordensity” is changed, cache data which will be valid and necessary in thenext development processing is decided as data to be cachedpreferentially. Therefore, in the RAW developing procedure shown in FIG.1, the CrCbCache 107, which is stored immediately before the “colordensity” is changed (updated), and the Y2Cache 113 that has beensubjected to luminance-related processing are both decided as data to becached preferentially.

Furthermore, in the present embodiment, while cache data which will bevalid and necessary in the next development processing is storedpreferentially, data which will highly likely be invalid or not used inthe next development processing is not cached.

For instance, assuming that the “color density” is changed, the cachedata CrCb2Cache 110 is not cached (invalid) because the change in thecolor density adjustment value calls for re-execution of thechrominance-related processing 108 and updating of the data Cr2 and Cb2.Moreover, the Ycache 106 and Y2Cache 113 are decided not to be cached,as they will highly likely be invalid or not used in the nextdevelopment processing. The reason is in that, the Ycache 106 is cachedata stored as a result of the RGB-to-YCrCb conversion 105 which ispositioned in the previous stage of the chrominance-related processing108. In addition, the cache data Y2Cache 113, which has been subjectedto luminance-related processing that is not simultaneously performedwith chrominance-related processing 108 for changing the “colordensity”, is preferentially stored. Therefore, even if the “colordensity” is changed, updating of these data is not necessary and thedata is not used.

Furthermore, the RGBCache 115 is cache data stored after the outputresults of chrominance-related processing and luminance-relatedprocessing are synthesized and subjected to YCrCb-to-RGB colorconversion. Since the RGBCache 115 is updated according to the change inthe “color density”, there is no point in caching the data. Therefore,it is decided that the RGBCache 115 is not to be cached.

In step 304, the image processing unit 203 performs RAW imagedevelopment processing. If there is valid cache data in this stage,development processing is performed using the valid cache data. Theprocessing performed prior to the valid cache data is not performedsince the cache data includes the results. Therefore, when a cache hitis found, higher speed is achieved in the RAW development processing.With respect to the intermediate result of each processing performed,the cache memory controller 207 determines caching target, and thetarget data is stored in the cache memory 204.

In step 305, if there is cache data (non-caching target) that has beendecided not to be cached by the cache memory controller 207, the data isdiscarded.

In step 306, the result obtained by the development processing in step304 is displayed on the monitor 201. Then, the developing procedureperformed by the image processing apparatus according to the presentembodiment ends.

As described above, according to the image processing apparatus of thepresent embodiment, in a case where one RAW image adjustment value ischanged plural numbers of times, efficient cache data hit can berealized, high-speed RAW development processing can be performed, andthe processing result can be displayed at high-speed with small memoryconsumption. Therefore, it is possible to provide preferable usabilityin the RAW image development operation performed by trial and error of auser.

FIG. 4 is a diagram showing a construction and a data arrangement in acase where a personal computer (PC) 401, which is in common use, isemployed as the image processing apparatus realizing the secondembodiment.

The PC according to this embodiment, which is similar to the onecommonly used nowadays, comprises an OS program, ROM, a keyboard, amouse, a power source unit, a hardware control program and the like,which are not shown in the drawing.

Numeral 402 denotes a CRT display, serving as an example of the monitor201 that displays image data and operation members for editing the imagedata.

Numeral 403 denotes DRAM storing various programs and data. As similarto a PC that is in common use, an OS program, a driver program, and anapplication program which are not shown in the drawing are read into theDRAM and executed by a CPU 404.

Numeral 405 denotes a hard disk serving as a non-volatile storagemedium. The hard disk is similar to the one comprised in a PC that is incommon use.

Numeral 406 denotes a RAW image editing program, which is capable ofreading a RAW image file 407 from the hard disk 405, performingdevelopment by an image processing program 408 in accordance with RAWdevelopment parameters, and displaying the result on the CRT 402.

The RAW image editing program 406 is an application program which isinstalled in advance in the hard disk 405 as similar to programs in a PCcommonly used. Upon user's start-up operation, the program and relateddata are read into the DRAM 403 and processing is performed by the CPU404.

The image processing program 408 is provided for performing developmentprocessing (image processing) of RAW image data. The program 408together with the CPU 404 realizes the image processing unit 203 shownin FIG. 2.

A cache control program 409 controls caching of intermediate processingresult data of the RAW image development. The program 409 together withthe CPU 404 realizes the cache memory controller 207 shown in FIG. 2.

Numeral 410 denotes a working memory area corresponding to the cachememory 204 shown in FIG. 2, which is used as a working memory by the RAWimage editing program 406 or other programs (not shown).

Numeral 411 denotes a RAW development parameter input history storagearea, serving as the RAW development parameter input history memory 206,which is used as an area storing a history of RAW development parametersinputted by a user. In this embodiment, assume that only the previousinput values and current input values are stored.

Numeral 412 denotes a mouse similar to the one comprised in a PCcommonly used. The mouse 412 is an example of the RAW developmentparameter input interface 205 shown in FIG. 2.

Numeral 413 denotes an internal bus for data transmission and receptionamong the blocks shown in FIG. 4.

Assume that the RAW image editing program 406 in FIG. 4 displays a userinterface shown in FIG. 5 on the CRT 402 at the time of apparatusstartup.

In FIG. 5, numeral 501 denotes a main window displayed by the RAW imageediting program. Displayed in the window is a RAW image developmentprocessing result 502. Numeral 503 denotes a RAW development parameterediting dialogue for changing the RAW development parameters. Thedialogue 503 includes adjustment controller for white balance 504, colordensity (saturation) 505, sharpness 506, and tone curve 507.

In the state shown in FIG. 5, the color density is set in “7”, thesharpness is set in “3”, and the tone curve is set as shown in thegraph. Numeral 502 shows the result of development processing performedbased on these RAW development parameters. If an adjustment value ischanged, RAW development is immediately performed and the result of thechange in adjustment value is displayed as the image 502.

If, for instance, a user moves the slider of the “color density”adjustment value from “7” to “3”, the slider goes through the values“6”, “5”, and “4” along the way. At each of these values, developmentprocessing is performed and the image 502 is updated. In other words,RAW development processing and display image updating are performed fourtimes. In this case, since consecutive RAW development processing isperformed four times with respect to one adjustment item “colordensity,” the cache system according to the present invention operateseffectively.

FIG. 6 is a flowchart describing a RAW developing procedure in the imageprocessing apparatus according to the present embodiment. The RAWdeveloping procedure according to the present embodiment is realized bythe CPU 404 executing the RAW image editing program 406 and the cachecontrol program 409.

When the RAW image editing program 406 is started upon user's operationon the PC, in step 601, the RAW image data file 407 is read from thehard disk 405 by the CPU 404 through the bus, and the developingprocedure is executed.

In step 602, the developed result of the RAW image obtained as a resultof executing the developing procedure is displayed on the CRT 402.

In step 603, it is scanned whether or not a user has inputted at leastone of the RAW development parameters from the mouse 412.

If there is no user input, the determination in step 604 results in NO,and user input scanning is performed again in step 603.

If there is a user input, the determination in step 604 results in YES,and the control proceeds to step 605.

In step 605, it is determined whether or not the content of the userinput is an operation to change the RAW development parameters.

In a case where a RAW development parameter is changed, thedetermination in step 605 results in YES, and the control returns to thedeveloping procedure in step 601 since it is necessary to display aresult of RAW development processing that reflects the change in the RAWdevelopment parameters.

In a case where the user input is not an operation to change the RAWdevelopment parameters, the determination in step 605 results in NO, andthe control proceeds to step 606.

In step 606, it is determined whether or not a user input is an endrequest command. If it is a command other than an end request, thecontrol returns to step 603 to scan a user input.

If the user input is an end request command, the determination in step606 results in YES. Upon performing necessary end processing such asdiscarding a secured memory, the RAW image editing program ends.

Next, the content of the developing procedure in step 601 is describedin detail with reference to FIG. 7.

Note that the development processing according to the present embodimentis similar to the basic procedure shown in FIG. 1.

Upon startup of the developing procedure, in step 701, the current RAWdevelopment parameters are stored in the RAW development parameter inputhistory storage area 411.

In step 702, the cache control program 409 refers to the RAW developmentparameter input history storage area 411 to compare the current RAWdevelopment parameters with the RAW development parameters used in theprevious development processing. If there is cache data to beinvalidated in the working memory area 410, it is discarded. Bydiscarding invalid cache data as early in the process as possible, it ismore likely to be able to secure necessary working memory in thesubsequent stages. Therefore, it is preferable to discard invalid datain step 702.

In step 703, among the intermediate data obtained as a result of currentdevelopment processing, the cache control program 409 determinesintermediate data to be kept as cache data even after the end of thisdeveloping procedure. Herein, the intermediate data to be cached will bereferred to as the caching target.

In step 704, the image processing program 408 executes RAW developmentprocessing while referring to the valid cache data, generates a RAWimage development result which reflects the current RAW developmentparameters, and stores the result in the working memory area 410.

In step 705, the cache control program 409 discards intermediate dataother than the caching target data, if there is any left in the workingmemory area 410, and ends the developing procedure according to thepresent embodiment shown in FIG. 7.

Next, the invalid cache discarding step 702 executed by the cachecontrol program 409 is described in detail with reference to FIG. 8.

In the invalid cache discarding processing, first in step 801, the RAWdevelopment parameter input history storage area 411, having forinstance a form shown in FIG. 11, is referred to compare the current RAWdevelopment parameters with the RAW development parameters used in theprevious development processing.

If the level value of the chrominance-related adjustment value (colordensity) is different from the one used in the previous developmentprocessing, the determination in step 802 results in NO, and the controlproceeds to step 803. If the value is the same, the control proceeds tostep 807 using CrCb2Cache and RGBCache.

If CrCb2Cache exists in step 803, it is discarded from the workingmemory area in step 804 as invalid cache data, since it will be changedby a different adjustment value.

If RGBCache exists in step 805, it is also discarded from the workingmemory area 410 in step 806 as invalid cache data.

More specifically, in the procedure shown in FIG. 1, CrCb2Cache 110 andRGBCache 115 are intermediate data that are directly or indirectlyinfluenced by the result of chrominance-related processing 108. Ifvalues of the development parameters regarding chrominance-relatedprocessing (chrominance-related adjustment values) have been changed,these cache data in the memory become invalid. Therefore, it isnecessary to discard the data as in steps 804 and 806.

If the chrominance-related adjustment values (color density) are thesame as the previous values, the determination in step 802 results inYES, and the control proceeds to step 807.

In step 807, it is determined whether or not values of the developmentparameters regarding luminance-related processing (luminance-relatedadjustment values such as sharpness, gamma correction, and noiseremoval) have been changed.

If the luminance-related adjustment values have been changed, thedetermination in step 807 results in NO, and the control proceeds tostep 808.

If Y2Cache 113 exists in step 808, it is discarded from the workingmemory area 410 in step 808 as invalid cache data.

If RGBCache 115 exists in step 810, it is discarded from the workingmemory area 410 in step 811 as invalid cache data. Then, the invalidcache discarding processing ends.

More specifically, in the procedure shown in FIG. 1, RGBCache 115 isintermediate data that is formed based on the result ofluminance-related processing 111 and is directly influenced by thisresult. If the luminance-related adjustment values have been changed,the cache data becomes invalid. Therefore, it is necessary to discardthe data not only in step 806 but also in step 811.

Meanwhile, in the determination in step 807, if the luminance-relatedadjustment values (e.g., sharpness) are the same as the previous values,the determination in step 807 results in NO, and the invalid cachediscarding processing ends.

Note, although not included in the flowchart, in a case where the whitebalance adjustment value 104 is changed, the intermediate data obtainedafter white balance adjustment is directly or indirectly used by all theluminance-related and chrominance-related processing in the subsequentstages. Therefore, all the cache data (YCache, CrCbCache, Y2Cache,CrCb2Cache, RGBCache) existing after the white balance adjustmentprocessing 103 are discarded.

Next, the caching target determining step 703 executed by the cachecontrol program 409 is described in detail with reference to FIG. 9.

In step 901, the RAW development parameter input history storage area411 is referred to compare the current RAW development parameters withthe RAW development parameters used in the previous developmentprocessing. (At the time of initial development, assume that previousadjustment values=current adjustment values)

In step 902, it is determined whether or not the chrominance-relatedadjustment values (color density) have been changed from the previoustime. If the values have been changed, the determination results in NO,and the control proceeds to step 903.

In step 903, CrCbCache 107 and Y2Cache 113 are determined as the cachingtarget. As is apparent from FIG. 1, the next time thechrominance-related adjustment values are changed, it is possible toobtain a development result with a smallest number of steps by virtue ofthe existence of two cache data CrCbCache 107 and Y2Cache 113.

If the determination in step 902 results in YES, step 903 is skipped andthe control proceeds to step 904.

In step 904, it is determined whether or not the luminance-relatedadjustment values (e.g., sharpness) have been changed from the previoustime. If the values have been changed, the determination results in NO,and the control proceeds to step 905.

In step 905, CrCb2Cache 110 and YCache 106 are determined as the cachingtarget. As is apparent from the flowchart in FIG. 1, the next time theadjustment values of luminance-related processing are changed, it ispossible to obtain a development result with a smallest number of stepsby virtue of the existence of two cache data CrCb2Cache 110 and YCache106.

If the determination in step 904 results in YES, step 905 is skipped andthe control proceeds to step 906.

In step 906, it is determined whether or not the tone curve adjustmentvalue 117 has been changed from the previous time. If the value has beenchanged, the determination results in NO, and the control proceeds tostep 907.

In step 907, RGBCache 115 is determined as the caching target. As isapparent from the flowchart in FIG. 1, the next time the tone curveadjustment value 117 is changed, it is possible to obtain a developmentresult with a smallest number of steps by virtue of the existence ofcache data RGBCache 115.

If the determination in step 906 results in YES, step 907 is skipped andthe caching target determination processing ends.

Next, the development processing step 704 utilizing a cache, which isexecuted by the image processing program 408, is described in detailwith reference to FIG. 10.

In step 1001, it is determined whether or not the RGBCache 115 exists inthe cache memory. If it exists, the cache data RGBCache 115 can beadopted as the processing result obtained up to the tone curveadjustment 116. In other words, when the determination in step 1001results in YES, then in step 1009, the tone curve adjustment 116utilizing the inputted tone curve adjustment value 117 and the dataconversion 118 are performed, and the results are stored in the workingmemory area 410. Then, the procedure ends.

Meanwhile, if the RGBCache 115 does not exist, the determination in step1001 results in NO, and the control proceeds to step 1002.

In step 1002, it is determined whether or not the Y2Cache 113 exists inthe cache memory. If it exists, the determination results in YES, andthe control proceeds to step 1006. If it does not exist, thedetermination results in NO, and the control proceeds to step 1003.

In step 1003, it is determined whether or not the YCache 106 exists inthe cache memory. If it exists, the control proceeds to step 1005. If itdoes not exist, the control proceeds to step 1004.

In step 1004, interpolation processing 102, WB adjustment processing103, and RGB-to-YCrCb color space conversion processing 105 areexecuted. If the YCache 106 and CrCbCache 107 obtained as the processingresult are the caching target determined in the aforementioned cachingtarget determination processing, the processing result is cached.

Note that even if the processing result is not the caching target, itdoes not mean that the result is immediately discarded here. In thepresent embodiment, it is necessary to maintain YCache until Y2Cache ordata in the subsequent stage is obtained. Also, it is necessary tomaintain CrCbCache until Cr2 and Cb2 or data in the subsequent stagesare obtained. In other words, even if the data is a non-caching target,it may be referred to by other processing in the latter stage of thedevelopment processing. As long as such data is necessary to completethe current development processing, it is necessary to store the data astemporary data. Determination as to the storage period is a designmatter that should be decided appropriately in accordance with thecontent of development processing. Therefore, the description thereof isomitted herein.

In step 1005, the luminance-related processing 111 such as APC, gammacorrection, and noise removal is performed. If the Y2Cache 113 isdetermined as the caching target in the aforementioned caching targetdetermination processing, the result of processing 111 is cached.

In step 1006, it is determined whether or not the CrCb2Cache 110 existsin the cache memory. If CrCb2Cache 110 exists in the cache memory, thedetermination in step 1006 results in YES, and the control proceeds tostep 1008. If CrCb2Cache 110 does not exist, the determination in step1006 results in NO, and the control proceeds to step 1007.

In step 1007, chrominance-related processing 108, such as color densityadjustment, is performed. If the CrCb2Cache 110 is determined as thecaching target in the aforementioned caching target determinationprocessing, the result of processing 108 is cached.

In step 1008, YCrCb-to-RGB color space conversion processing 114 isperformed. If the RGBCache 115 is determined as the caching target inthe aforementioned caching target determination processing, the resultof processing 114 is cached.

Then, the above-described processing in step 1009 is performed.Thereafter, the developing procedure utilizing a cache, which isexecuted by the image processing program 408, ends.

Note, although the present embodiment performs development processing inorder of luminance-related processing and chrominance-relatedprocessing, the sequence is not limited to this. The processing sequencemay be in any order to realize the procedure in FIG. 1.

Hereinafter, the effectiveness of the cache system in the procedureshown in FIG. 10 is described.

For instance, assume that the respective processing time is as follows:

-   interpolation processing . . . 200 (msec)-   WB adjustment . . . 100 (msec)-   RGB-to-YCrCb conversion processing . . . 50 (msec)-   chrominance-related processing . . . 300 (msec)-   luminance-related processing . . . 500 (msec)-   YCrCb-to-RGB conversion processing . . . 50 (msec)-   tone curve adjustment . . . 100 (msec)-   data conversion . . . 50 (msec)

As a result, the time consumed in initial development is as follows:

initial development time . . . 200+100+50+300+500+50+100+50=1350 (msec)

When the tone curve is changed for the first time, since all the cachedata becomes invalid, the development processing takes the same time(1350 msec) as the initial development time. However, this processingtime is required only in the beginning of the tone curve adjustmentoperation. As the user continues tone curve adjustment operation on theslide bar, the RGBCache becomes valid, and later the developmentprocessing time during tone curve operation is reduced as follows:

development time during tone curve operation . . . 100+50=150 (msec)

Therefore, the user is able to confirm the adjustment result almost inreal time while adjusting the tone curve.

Furthermore, in a case of caching 16-bit data having 4000 horizontalpixels×3000 vertical pixels, the necessary memory capacity is asfollows:

RGBCache . . . 3 planes for RGB=24 MB×3=72 MB

Therefore, the memory capacity of a commonly used PC is sufficient.

In the similar manner, in a case of adjusting parameters other than thetone curve, e.g., color density or sharpness, the similar effect to theabove-described effect can be achieved.

As described above, the second embodiment provides an image processingapparatus capable of performing RAW development processing at high speedwith pleasant response, which does not require a large-capacity workingmemory so as to enable a reduced calculation load on the PC.

Other Embodiment

In the foregoing embodiments, a RAW image is described as image datathat has been subjected to photoelectric conversion by an image sensorand subjected to A/D conversion at the time of image sensing by adigital camera, but has been subjected to no image processing at thetime of storing. However, a RAW image may be of, e.g., an outputtedanalogue signal from an image sensor, an A/D converted image signalwhich has not been subjected to at least white balance processing, or anA/D converted image signal from an image sensor which has not beensubjected to color separation for separating a luminance signal from acolor signal or which has not been subjected to color interpolation, aslong as it holds an output signal from the image sensor with minimumdata loss.

The present invention may be configured to perform developmentprocessing in a digital camera by reading a RAW image sensed by thedigital camera from a recording medium and inputting developmentparameters in the digital camera, or may be configured to inputdevelopment parameters with remote operation from outside a digitalcamera, e.g., a PC, by physically or electrically connecting the digitalcamera with a device, e.g., a PC or a printer.

Further, the object of the present invention can also be achieved byproviding a storage medium, storing program codes of software realizingthe above-described functions of the embodiments, to a computer systemor apparatus, reading the program codes, by a computer (CPU or MPU) ofthe computer system or apparatus, from the storage medium, thenexecuting the program. In this case, the program codes read from thestorage medium realize the functions according to the embodiments, andthe storage medium storing the program codes constitutes the invention.

Furthermore, a system or an apparatus executing the above-describedfunctions of the embodiments is not limited to a PC, but may be an imagesensing apparatus, such as a digital camera. In this case, theprocessing from development parameter input to image display iscompleted by the image sensing apparatus alone.

The storage medium, such as a flexible disk, a hard disk, an opticaldisk, a magneto-optical disk, CD-ROM, CD-R, a magnetic tape, anon-volatile type memory card, and ROM can be used for providing theprogram codes.

Meanwhile, besides aforesaid functions according to the aboveembodiments are realized by executing the program codes which are readby a computer, the present invention includes a case where an OS(operating system) or the like working on the computer performs part orthe entire processes in accordance with designations of the programcodes and realizes functions according to the above embodiments.

Furthermore, the present invention also includes a case where, after theprogram codes read from the storage medium are written in a functionexpansion card which is inserted into the computer or in a memoryprovided in a function expansion unit which is connected to thecomputer, a CPU or the like contained in the function expansion card orunit performs part or the entire processes in accordance withdesignations of the program codes and realizes functions of the aboveembodiments.

As many apparently widely different embodiments of the present inventioncan be made without departing from the spirit and scope thereof, it isto be understood that the invention is not limited to the specificembodiments thereof except as defined in the appended claims.

CLAIM OF PRIORITY

This application claims priority from Japanese Patent Application No.2004-131572 filed on Apr. 27, 2004, which is hereby incorporated byreference herein.

1. An image processing apparatus comprising: input means for inputtingimage data, which is obtained by digitalizing an image signal that hasbeen converted from light from an object to an electric signal by animage sensor, and performing no compression or lossless compression;image processing parameter input means for inputting a parameter to beemployed in image processing on the image data executed by a user; imageprocessing means for performing luminance-related processing orchrominance-related processing on the image data in accordance with theimage processing parameter inputted by said image processing parameterinput means; and storage means for storing an intermediate result foreach of the luminance-related processing and the chrominance-relatedprocessing.
 2. The image processing apparatus according to claim 1,further comprising: image processing parameter input history storagemeans for storing input history information of a parameter inputted bysaid image processing parameter input means; and cache control means forcontrolling whether or not to cache the intermediate result of the imageprocessing in said storage means in accordance with a comparison betweena current image processing parameter and previous input historyinformation stored in said image processing parameter input historystorage means.
 3. An image processing apparatus comprising: input meansfor inputting image data that is obtained by converting light from anobject to an electric signal employing an image sensor, digitalizing animage signal, and performing no compression or lossless compression;image processing parameter input means for inputting a parameter to beemployed in image processing on the image data executed by a user; imageprocessing means for performing image processing on the image data inaccordance with the image processing parameter inputted by saidparameter input means; storage means for storing a result of imageprocessing and an intermediate result of image processing; cache controlmeans for caching the intermediate result of image processing in saidstorage means in preparation for next image processing; image processingparameter input history storage means for storing input historyinformation of a parameter inputted by said image processing parameterinput means; and cache control means for controlling whether or not tocache the intermediate result of image processing in said storage meansin accordance with a comparison between a current image processingparameter and previous input history information stored in said imageprocessing parameter input history storage means.
 4. The imageprocessing apparatus according to claim 1, wherein said cache controlmeans invalidates as cache data an intermediate result of imageprocessing which directly or indirectly utilizes a result of imageprocessing corresponding to an image processing parameter having adifferent value from an image processing parameter employed in previousimage processing.
 5. The image processing apparatus according to claim3, wherein said cache control means controls whether or not to cache anintermediate result of each image processing means based on imageprocessing parameter input history information stored in said imageprocessing parameter input history storage means.
 6. The imageprocessing apparatus according to claim 3, wherein said cache controlmeans preferentially caches in said storage means a result of imageprocessing positioned in a previous stage of image processing which isperformed based on a parameter currently inputted by said imageprocessing parameter input means.
 7. The image processing apparatusaccording to claim 3, said image processing means including at leastluminance-related processing and chrominance-related processing, andfurther including synthesis conversion processing means for synthesizinga result of the luminance-related processing and a result of thechrominance-related processing, wherein in a case where one of theluminance-related processing or the chrominance-related processing isperformed based on a parameter currently inputted by said imageprocessing parameter input means, said cache control meanspreferentially caches in said storage means an intermediate result ofthe other processing, which is obtained immediately before beingsynthesized by said synthesis conversion means.
 8. The image processingapparatus according to claim 7, wherein said cache control meanspreferentially caches in said storage means an intermediate result ofimage processing, positioned in a previous stage of one of theluminance-related processing or the chrominance-related processing,performed based on a parameter currently inputted by said imageprocessing parameter input means, and an intermediate result of theother processing which is obtained immediately before being synthesizedby said synthesis conversion means.
 9. An image processing methodcomprising: an input step of inputting image data, which is obtained bydigitalizing an image signal that has been converted from light from anobject to an electric signal by an image sensor, and performing nocompression or lossless compression; an image processing parameter inputstep of inputting a parameter to be employed in image processing on theimage data executed by a user; an image processing step of performingluminance-related processing or chrominance-related processing on theimage data in accordance with the image processing parameter inputted insaid image processing parameter input step; and a storage step ofstoring an intermediate result for each of the luminance-relatedprocessing and the chrominance-related processing.
 10. The imageprocessing method according to claim 9, further comprising: an imageprocessing parameter input history storage step of storing input historyinformation of a parameter inputted in said image processing parameterinput step; and a cache control step of controlling whether or not tocache the intermediate result of the image processing in accordance witha comparison between a current image processing parameter and previousinput history information stored in said image processing parameterinput history storage step.
 11. An image processing method comprising:an input step of inputting image data, which is obtained by digitalizingan image signal that has been converted from light from an object to anelectric signal by an image sensor, and performing no compression orlossless compression; an image processing parameter input step ofinputting a parameter to be employed in image processing on the imagedata executed by a user; an image processing step of performing imageprocessing on the image data in accordance with the image processingparameter inputted in said parameter input step; a storage step ofstoring a result of image processing and an intermediate result of imageprocessing; a cache control step of caching the intermediate result ofimage processing in a storage unit in preparation for next imageprocessing; an image processing parameter input history storage step ofstoring input history information of a parameter inputted in said imageprocessing parameter input step; and a cache control step of determiningwhether or not to cache the intermediate result of image processing inaccordance with a comparison between a current image processingparameter and previous input history information stored in said imageprocessing parameter input history storage step.
 12. The imageprocessing method according to claim 11, wherein in said cache controlstep, an intermediate result of image processing, which directly orindirectly utilizes a result of image processing corresponding to animage processing parameter having a different value from an imageprocessing parameter employed in previous image processing, isinvalidated as cache data.
 13. The image processing method according toclaim 11, wherein in said cache control step, it is determined whetheror not to cache an intermediate result of each image processing meansbased on image processing parameter input history information stored insaid image processing parameter input history storage step.
 14. Theimage processing method according to claim 11, wherein in said cachecontrol step, a result of image processing positioned in a previousstage of image processing which is performed based on a parametercurrently inputted in said image processing parameter input step ispreferentially cached.
 15. The image processing method according toclaim 11, said image processing step including at leastluminance-related processing and chrominance-related processing, andfurther including a synthesis conversion processing step of synthesizinga result of the luminance-related processing and a result of thechrominance-related processing, wherein in a case where one of theluminance-related processing or the chrominance-related processing isperformed based on a parameter currently inputted in said imageprocessing parameter input step, an intermediate result of the otherprocessing which is obtained before being synthesized in said synthesisconversion step is preferentially cached in said cache control step. 16.The image processing method according to claim 15, wherein in said cachecontrol step, an intermediate result of image processing, positioned ina previous stage of one of the luminance-related processing or thechrominance-related processing, performed based on a parameter currentlyinputted in said image processing parameter input step, and anintermediate result of the other processing which is obtainedimmediately before being synthesized in said synthesis conversion stepare preferentially cached.
 17. A computer control program for causing acomputer to realize the image processing method described in claim 9.18. A computer control program for causing a computer to realize theimage processing method described in claim
 11. 19. A computer-readablestorage medium storing-the computer control program described in claim17.
 20. A computer-readable storage medium storing the computer controlprogram described in claim 18.